ICTSC2019 一次予選 問題解説: VyOSの設定が吹き飛んだ!
問題文
社内のラボ環境でVyOSにサーバ、クライアントを接続し、相互にIPv6で通信できる環境を構築していた。
ある日VyOSの再起動を行ったところ、設定ファイルの保存を行っていなかったためVyOSの設定が消えてしまった。
VyOSを以下の要件に従って設定を行いクライアント-サーバ間で通信ができるように復旧し、管理者用アカウントを追加して欲しい。
また、今後同様の事象が発生しないように対策を講じること。
条件
- eth0は踏み台接続用のインタフェースなので設定を変更してはならない
- タイムゾーンはJSTに設定すること
- VyOSに以下のアカウントを新しく追加し、デフォルトのアカウント (
vyos
ユーザ) は削除すること- ユーザー名:
ictsc2019
- パスワード:
ictsc2019
- ユーザー名:
ゴール
- 上記の要件に従って設定を行いクライアント-サーバ間で通信ができる
- 再起動をしても設定が消えないようにする
情報
VyOS
- IPアドレス:
192.168.0.1
- ユーザー名:
vyos
- パスワード:
vyos
クライアント
- IPアドレス:
192.168.0.2
- ユーザー名:
admin
- パスワード:
admin
補足
- クライアントは、RAにより
2001:db8:2000::/64
のプレフィックスのアドレスが割り振られる - サーバは、
2001:db8:1000::2/64
がインターフェースに割り振られており、ゲートウェイとして2001:db8:1000::1
が指定されている
解説・解答例
条件・ゴール通りに一つずつ設定を行っていきましょう。
設定の投入方法
VyOSにアクセスした後、設定を変更可能なモードに移行するにはconfigureコマンドを実行しましょう。設定変更に関するコマンドはコンフィグレーションモードで行います。
$ configure
[edit]
#
eth1とeth2に適切な設定を投入
クライアントとサーバ側のインターフェースに適切な設定を投入しましょう。
トポロジ図を参照すると、クライアント側のインターフェースはeth1、サーバ側はeth2だという事が分かります。
eth0の設定
補足情報からクライアントには2001:db8:2000::/64
のアドレスがRAで配布される事が分かります。VyOSのeth1にRAの設定を投入します。なお、インタフェースに割り当てるアドレスは2001:db8:2000::/64内のアドレスであれば、どんなアドレスにしても問題ありません。ここではEUI-64で自動生成しています。
以下のコマンドで設定します。
# set interfaces ethernet eth1 ipv6 address eui64 2001:db8:2000::/64
# set interfaces ethernet eth1 ipv6 router-advert send-advert true
# set interfaces ethernet eth1 ipv6 router-advert prefix 2001:db8:2000::/64
# commit
eth1の設定
補足情報からサーバのインタフェースは2001:db8:1000::2/64
が静的に割り振られており、ゲートウェイとして2001:db8:1000::1
が設定されていると分かります。
VyOSのeth2に2001:db8:1000::1/64
を静的に設定しましょう。
# set interfaces ethernet eth2 address 2001:db8:1000::1/64
# commit
アカウントの追加と削除
デフォルトのvyos:vyosを削除し、管理用にictsc2019:ictsc2019のアカウントを追加します。
ログイン状態にあるアカウントを削除する事はできないので、先にアカウントの追加を行います。
# set system login user ictsc2019 authentication plaintext-password ictsc2019
# set system login user ictsc2019 level admin
# commit
一旦ログアウトして、ictsc2019ユーザでSSH接続します。
ログインできたらvyosユーザを削除して完了です。
# delete system login user vyos
# commit
タイムゾーンの設定
これはコマンド一発です。
# set system time-zone Asia/Tokyo
# commit
設定の保存
ここまで設定を終えて、クライアントからサーバへの疎通が取れる事を確認したら、設定を保存しておきましょう。
これもコマンド一発です。
# save